Single tenant software is software which is designed to run on a single server usually in a local area network. It is not possible to install two runtime versions of a single tenant software on one server, as there would be a conflict between the two runtime versions.
If a single tenant software shall be used on a server in a software as a service (SaaS) then the single tenant software has to be rewritten in a multi tenant architecture, so that at least the working data of each user are strictly separated from each other. Advantageously, a plurality of runtime versions (instances) of this software are simultaneously executable on a server, wherein to each instance a separate storage space is assigned to which only the certain instance has access.
It is very labor-intensive to rewrite an existing single tenant software into a multi tenant software.
The software Lotus Domino from IBM Corporation, USA, is a single tenant software. To use this software as a service an instance of this software has to be installed for each customer (tenant) into a server (physical or virtual). The installation of an instance in a server is very cumbersome, because the creation of a server and the installation of the software into the server needs highly skilled personnel and takes long time. Therefore, the software Lotus Domino is only offered as software as a service, by IBM directly, for customers with at least 1.000 users to accommodate for the use of server and manual labour. This software is then installed on a separate physical server for SaaS.
If Lotus Domino were a multi tenant software, several runtime versions could be easily installed on one server for the use of different customers. The software Microsoft Exchange is a multi tenant software, which is offered to users of any size as a software as a service. For small customers with less than 1.000 users Microsoft Exchange is the market leader as for such customers. Lotus Domino is available for customers with less than 1000 users only as a single tenant software for on-site installation.
There are several server operating systems which allow the setup of a virtual server. A virtual server is an isolated software container that can run its own operating system and applications as if it were a physical computer. A virtual server behaves exactly like a physical computer and contains its own virtual (i.e. software-based) CPU, RAM, hard disk and network interface card. Virtual servers are also called virtual machines.
Such server operating systems are e.g. VMware ESXi and Linux xen. There are also software packages which can be run on an ordinary server operating system and which allow the setup of virtual servers. Such a software package is for example Parallels® Virtuozzo Containers from Parallels GmbH, Germany, which can be run on a Windows Server 2003 and Linux.
The automatic setup of virtual servers is disclosed in U.S. Pat. No. 7,577,722 B1. A provisioning server automatically configures a virtual machine according to user specifications and then deploys the virtual machine on a physical host. The user may either chose from a list of pre-configured, ready-to-deploy virtual machines, or he may select which hardware, operating system and application(s) he would like the virtual machine to have. The provisioning server then configures the virtual machine accordingly, if the desired configuration is available, or it applies rules to configure a virtual machine that best matches the users request if it isn't. There are also tools for monitoring the status of virtual machines and hosts, for migrating virtual machines between hosts, and for creating a network of virtual machines.
WO 2009/018489 A2 discloses a software market place and distribution system. A market place application is hosted at one or more servers. A software application can be received from a software vender for distribution. The software application is made available for distribution through the market place application.
WO 02/03220 discloses an apparatus and a method for providing one or more computer services to a plurality of customers. A virtual machine and a virtual network can be configured for each customer. This can be done entirely or semi-automatically.
US 2008/0086735 A1 discloses a method and a system for providing a client access to an external service via an application service platform.